Advances in silicon process technology has lead to the development of increasingly larger die sizes for integrated circuits, which are capable of including millions of transistors on a single die. In turn, the ability to integrate such a high number of transistors on a single die has not only led to invention of the microprocessor, but has also led to the improvement of microprocessor features and permitted an increase in the number of features available.
In order to utilize a microprocessor in a computer system, an operating system, compatible with the microprocessor, is developed. In addition to providing a compatible operating system, application programs are developed. For the Intel.RTM. architecture microprocessor, a large number of application programs compatible with the Intel.RTM. architecture microprocessor are readily available. Consequently, for the Intel.RTM. architecture microprocessor, many application programs have been written to remain compatible with earlier versions of the microprocessor. However, it is desirable to take advantage of the large integration of transistors by increasing the functionality of the microprocessor.
In order to remain compatible with certain existing software applications and to provide increased functionality, the Intel.RTM. architecture microprocessor developed operating modes. The operating modes in the Intel.RTM. architecture microprocessor include a real mode, a protected mode, and a virtual 8086 mode operating within the protected mode. The real mode of the Intel.RTM. architecture microprocessor permits compatibility with previous system software versions while the protected mode provides a variety of features for newer applications. The virtual 8086 mode permits compatibility with older application programs in a new operating system environment.
As the number of operating modes and functionality in a particular microprocessor increases, the complexity to implement functions within the microprocessor also increases. For example, for the Intel.RTM. architecture microprocessor, generating an address for memory may require three different operations, one for each operating mode. In such a case, the complexity of the microprocessor is increased by three. Therefore, it is desirable to implement functions in a microprocessor that overlap operations regardless of the operating mode of the microprocessor. By overlapping certain functions applicable to all operating modes, the complexity of the microprocessor, including the number of micro-instructions, and transistors is decreased.